package com.Reporte_Consultas;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.concurrent.ExecutionException;

import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.BarChart;
import org.achartengine.chart.LineChart;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ActionBar;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.BD.BD_RC;
import com.Reporte_Evolutivo.RE_1_Tipo_Eventos;
import com.Generales.R;
import com.Generales.login;
import com.JSON.JSONParser_Final;


public class Reporte_Consultas extends Activity {
	
	//#### BD #####
    
	ArrayList<Registro_Consultas> regConsultas = null;
	JSONArray consultas = null;
	
	private static String urlVentas = "http://200.16.7.112:3000/reports_management/report/consultasventas/";
	private static String urlVentasAmbos = "http://200.16.7.112:3000/reports_management/report/consultasVentasAmbos/";
	private static String urlConsultas = "http://200.16.7.112:3000/reports_management/report/consultas/";
	private static String urlConsultasAmbos = "http://200.16.7.112:3000/reports_management/report/consultasAmbos/";
	private static String urlNombreEvento = "http://200.16.7.112:3000/reports_management/report/nombreevento/";
	private BD_RC db = null;
	private JSONArray auxJsonVentas = null;
	private JSONArray auxJsonConsultas = null;
	private JSONArray auxJson = null;
		
	int idTipoEvento;        //1    
    int idSubtipoEvento;     //2    
    int idEvento;            //3    
    int idUbicacion;         //4    
    String fechaCreacion;    //5
    String fechaRealizacion; //6        
    int anho;                //7
    String nomMes;           //8    
    int mes;                 //9
    int trimestre;           //10    
    int cantidad;			 //11
    int tipoDato;			 //12


	//### Graficar ###/
	GraphicalView mChartView = null;
	int[] anios = null;
	int[] meses = null;
	int[] ventasAnio = null;
	int[] ventasMes = null;
	String[] datos = null;
	String tituloGrafica = "";
	LinearLayout layoutGrafica = null;
	boolean anual = false;
	boolean cambioFechaInicio = false;
	boolean cambioFechaFin = false;
	String fechaActualInicio = "";
	String fechaAntInicio = "";
	String fechaActualFin = "";
	String fechaAntFin = "";
	String nombreUser;
	String nomEvento;
	
	//################
	
	public String titulo = "";
	public int flagTiempo = 0; // 1=mes && 2=trimenstre && 3=anno
	public int flagLima = 0;
	public int flagProvincia = 0;
	public int flagNivel=0;
	public int flagFechaInicio=0; 
	public int flagFechaFin=0;
	public int flagMuestraOp=0;
	
	public String periodo = "";
	public String strLima = "";
	public String strProvincias = "";
	
	private Button pickDateInicio;
    private int anhoInicio;
    private int mesInicio;
    private int diaInicio;
    
    private Button pickDateFin;
    private int anhoFin;
    private int mesFin;
    private int diaFin;
    
    static final int DATE_DIALOG_Inicial = 0;
    static final int DATE_DIALOG_Final = 1;
    
    private TextView mDateDisplayInicio,mDateDisplayFin;
	
	/**
	 * @see android.app.Activity#onCreate(Bundle)
	 */
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		
		super.onCreate(savedInstanceState);
		setContentView(R.layout.consultas);
		
		nombreUser = this.getIntent().getExtras().getString("nombreUser");
		idEvento= Integer.parseInt(this.getIntent().getExtras().getString("idEvento"));
		
		Resources res = getResources();
		Drawable myImage = res.getDrawable(R.drawable.background2);
		ActionBar actionBar = this.getActionBar();
		actionBar.setBackgroundDrawable(myImage);
		actionBar.setDisplayUseLogoEnabled(true);
		actionBar.setTitle(nombreUser);
		//actionBar.setDisplayShowTitleEnabled(false);
				
		mDateDisplayInicio = (TextView) findViewById(R.id.txtFechaInicio);
		mDateDisplayFin = (TextView) findViewById(R.id.txtFechaFin);
				
		pickDateInicio = (Button) findViewById(R.id.btnInicio);

		pickDateInicio.setOnClickListener(new View.OnClickListener() {
		            public void onClick(View v) {
		                showDialog(DATE_DIALOG_Inicial);
		                
		            }
		        });
		        
		final Calendar c = Calendar.getInstance();
		anhoInicio = c.get(Calendar.YEAR);
		mesInicio = c.get(Calendar.MONTH);
		diaInicio = c.get(Calendar.DAY_OF_MONTH);
		mDateDisplayInicio.setText((mesInicio +1) + "-"+ diaInicio + "-"+ anhoInicio);
		
		pickDateFin = (Button) findViewById(R.id.btnFin);

		pickDateFin.setOnClickListener(new View.OnClickListener() {
		            public void onClick(View v) {
		                showDialog(DATE_DIALOG_Final);		                
		            }
		        });
		        
		anhoFin = c.get(Calendar.YEAR);
		mesFin = c.get(Calendar.MONTH);
		diaFin = c.get(Calendar.DAY_OF_MONTH);
		mDateDisplayFin.setText((mesFin +1) + "-"+ diaFin + "-"+ anhoFin);
		
		graficaInicial(null);
	}
	
	@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menuprincipal, menu);
        return true;
    }
	
	

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
	    // Handle item selection
	    switch (item.getItemId()) {
	        case R.id.logout:
	        	Intent logo = new Intent(this,login.class);
	        	startActivity(logo);
	            return true;
	        case android.R.id.home:
	        	if(flagMuestraOp==1) ocultarMenu();
	        	else mostrarMenu();	        	
	        	return true;
	        
	        default:
	            return super.onOptionsItemSelected(item);
	    }
	}
	
	
	protected Dialog onCreateDialog(int id) {
		   switch (id) {
		   case DATE_DIALOG_Inicial:
		    DatePickerDialog dialogoInicio =new DatePickerDialog(this,
		    		mDateSetListenerInicio, anhoInicio, mesInicio, diaInicio);
		    
		    dialogoInicio.getDatePicker();		    
		    return dialogoInicio;
		    
		   case DATE_DIALOG_Final:
			    DatePickerDialog dialogoFin =new DatePickerDialog(this,
			                    mDateSetListenerFin, anhoFin, mesFin, diaFin);
			    
			    dialogoFin.getDatePicker();		   
		    return dialogoFin;
		   }
		   
		   return null;
	}
	
	
	private DatePickerDialog.OnDateSetListener mDateSetListenerInicio = new DatePickerDialog.OnDateSetListener() {
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        	anhoInicio = year;
        	mesInicio = monthOfYear;
        	diaInicio = dayOfMonth;
        	establecerColorFechaInicio();
        	
        	mDateDisplayInicio.setText(new StringBuilder()
			// Month is 0 based so add 1
            .append(mesInicio + 1).append("-")
            .append(diaInicio).append("-")
            .append(anhoInicio).append(" "));
        }
	};
	
	
	private DatePickerDialog.OnDateSetListener mDateSetListenerFin = new DatePickerDialog.OnDateSetListener() {
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        	anhoFin = year;
        	mesFin = monthOfYear;
        	diaFin = dayOfMonth;
        	establecerColorFechaFin();
        	
        	mDateDisplayFin.setText(new StringBuilder()
			// Month is 0 based so add 1
            .append(mesFin + 1).append("-")
            .append(diaFin).append("-")
            .append(anhoFin).append(" "));
        }
	};
	
	
	public void graficaInicial (View view){
    	
		double[] auxDatos1 = {0};    	
    	List<double[]> datosBarra = new ArrayList<double[]>();
    	datosBarra.add(auxDatos1);
    	
    	double[] auxDatos2 = {};
    	List<double[]> datosLinea = new ArrayList<double[]>();
    	datosLinea.add(auxDatos2);
    	
    	barra_linea grafica = new barra_linea();
    	String  periodo = "";
    	String [] periodoS = {};
    	
    	grafica.execute(datosBarra,datosLinea,periodo,periodoS,"Consultas vs Ventas");
    	
    	String [] types = {BarChart.TYPE, LineChart.TYPE};
    	
    	GraphicalView mChartview;
		LinearLayout layout = (LinearLayout) findViewById(R.id.idpanelgraficoconsulta);
		
		XYMultipleSeriesRenderer renderer = grafica.getmRenderer();
		renderer.getSeriesRendererAt(0).setDisplayChartValues(false);
		
		mChartview = ChartFactory.getCombinedXYChartView(this, grafica.getDataSet(), grafica.getmRenderer(), types);
		layout.removeAllViews();
		layout.addView(mChartview, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    }
	
	
	public void ocultarMenu(){
		LinearLayout auxLayout=(LinearLayout)findViewById(R.id.LinearLayout01);
		auxLayout.setVisibility(View.GONE);
		flagMuestraOp=0;
	}
	
	
	public void mostrarMenu(){
		LinearLayout auxLayout=(LinearLayout)findViewById(R.id.LinearLayout01);
		auxLayout.setVisibility(View.VISIBLE);
		flagMuestraOp=1;
	}
	
	
	public void graficaHandler (View view){
    	
		int numeroInicial = anhoInicio*10000+mesInicio*100+diaInicio;
		int numeroFinal = anhoFin*10000+mesFin*100+diaFin;
		
		
		//Validaciones
		if ( !((periodo.equals(""))||(( strProvincias.isEmpty() && strLima.isEmpty()))) ){
			
			if(numeroFinal>=numeroInicial){
		
				//idEvento= this.getIntent().getExtras().getString("idEvento");
				//int idEvento=1; //CAMBIAR!!!!				
				
				
				
				String urlVent = "";
				String urlConsult = "";
				
				if ((strProvincias.equals("Provincias")) && (strLima.equals("Lima"))){					
					urlVent = urlVentasAmbos;
					urlConsult = urlConsultasAmbos;
					
					urlVent += anhoInicio + "-" + mesInicio + "-" + diaInicio + "/" + 
							   anhoFin + "-" + mesFin + "-" + diaFin + "/";
					urlConsult += anhoInicio + "-" + mesInicio + "-" + diaInicio + "/" + 
							      anhoFin + "-" + mesFin + "-" + diaFin + "/";
					
					urlVent += idEvento + ".json";
					urlConsult += idEvento + ".json";
					
				}else{
					urlVent = urlVentas;
					urlConsult = urlConsultas;
					
					urlVent += anhoInicio + "-" + mesInicio + "-" + diaInicio + "/" + 
							   anhoFin + "-" + mesFin + "-" + diaFin + "/";
					urlConsult += anhoInicio + "-" + mesInicio + "-" + diaInicio + "/" + 
							      anhoFin + "-" + mesFin + "-" + diaFin + "/";
					
					urlVent += idEvento + "/";
					urlConsult += idEvento + "/";		
					
					if (strLima.equals("Lima")){
						urlVent += strLima + ".json";
						urlConsult += strLima + ".json";
					}
					
					if (strProvincias.equals("Provincias")){
						urlVent += strProvincias + ".json";
						urlConsult += strProvincias + ".json";
					}
					
				}
				
				
								
				auxJsonVentas = returnJson(urlVent);
				auxJsonConsultas = returnJson(urlConsult);
	
				db = new BD_RC(this);
				db.borraTablaVentas();
				
				//VENTAS
				ArrayList<Registro_Ventas> arrayVenta = new ArrayList<Registro_Ventas>();
				
				try {
					for(int i = 0; i < auxJsonVentas.length(); i++){
						 JSONObject jsonItem = auxJsonVentas.getJSONObject(i);
				         JSONObject jsonItem1 = jsonItem.getJSONObject("fact_venta");
				         
				         int Anho = jsonItem1.getInt("Anho");
				         int Trimestre = jsonItem1.getInt("Trimestre");				         
				         int  Mes= jsonItem1.getInt("Mes");
				         String nomMes = jsonItem1.getString("nomMes");
				         int Cantidad = jsonItem1.getInt("Cantidad");
				         				        
				         Registro_Ventas regVenta = new Registro_Ventas (Anho, Trimestre, Mes, nomMes, Cantidad);
				         arrayVenta.add(regVenta);
					}
				}catch (JSONException e) {
				     e.printStackTrace();
				}
				
				
				//arrayRe = getVentas(idEvento); //se llena el arry con data del json		
				for (int i =0; i < arrayVenta.size();i++){//se agregan las ventas a la BD
					db.addRegistroVentas(arrayVenta.get(i));
				}
				
				
				//CONSULTAS
				ArrayList<Registro_Consultas> arrayConsultas = new ArrayList<Registro_Consultas>();
				
				try {
					for(int i = 0; i < auxJsonConsultas.length(); i++){
						 JSONObject jsonItem = auxJsonConsultas.getJSONObject(i);
				         JSONObject jsonItem1 = jsonItem.getJSONObject("fact_consulta");
				         
				         int Anho = jsonItem1.getInt("Anho");
				         int Trimestre = jsonItem1.getInt("Trimestre");				         
				         int  Mes= jsonItem1.getInt("Mes");
				         String nomMes = jsonItem1.getString("nomMes");
				         int Cantidad = jsonItem1.getInt("Cantidad");				         			        
				         
				         Registro_Consultas regConsulta = new Registro_Consultas (Anho, Trimestre, Mes, nomMes, Cantidad);
				         arrayConsultas.add(regConsulta);
					}
				}catch (JSONException e) {
				     e.printStackTrace();
				}
				
				
				//arrayRe = getVentas(idEvento); //se llena el arry con data del json		
				for (int i =0; i < arrayConsultas.size();i++){//se agregan las ventas a la BD
					db.addRegistroConsultas(arrayConsultas.get(i));
				}
				
				
				ArrayList<Registro_Ventas> listaVentas = new ArrayList<Registro_Ventas>();
				ArrayList<Registro_Consultas> listaConsultas = new ArrayList<Registro_Consultas>();
				
				listaVentas = db.getVentas(periodo);
				listaConsultas = db.getConsultas(periodo);
				
				
				if((listaVentas!=null) || (listaConsultas!=null)){
				
					String[] strPeriodos = null;
				
					if(listaVentas.size()>=listaConsultas.size())
						strPeriodos = new String[listaVentas.size()];
					else
						strPeriodos = new String[listaConsultas.size()];
				
				
					double[] registrosBarra = new double[listaVentas.size()];
								
					for(int i=0; i<listaVentas.size(); i++){
						registrosBarra[i] = listaVentas.get(i).getCantidad();
						if(listaVentas.size()>=listaConsultas.size())
							strPeriodos[i] = listaVentas.get(i).getNomMes();
					}
											
					double[] registrosLinea = new double[listaConsultas.size()];
				
					for(int i=0; i<listaConsultas.size(); i++){
						registrosLinea[i] = listaConsultas.get(i).getCantidad();
						if(listaVentas.size()<listaConsultas.size())
							strPeriodos[i] = listaConsultas.get(i).getNomMes();
					}
				
					db.close();
				
				
					String urlEvento = "";
					
					urlEvento=urlNombreEvento;
					urlEvento += idEvento + ".json";
					auxJson = returnJson(urlEvento);	
				
					try {					
						JSONObject jsonItem = auxJson.getJSONObject(0);
						JSONObject jsonItem1 = jsonItem.getJSONObject("cubo_evento");
					
						nomEvento = jsonItem1.getString("nomEvento");
			        
					} catch (JSONException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
		        
				
				//Titulo de la Grafica
				if (periodo.equals("Anho")){
					if (anhoFin == anhoInicio)
						this.tituloGrafica = "Reporte Consultas vs Ventas del Evento \"" + nomEvento + "\" del Año " + anhoFin;
					else
						this.tituloGrafica = "Reporte Consultas vs Ventas del Evento  \"" + nomEvento + 
											 "\" Anuales " + anhoInicio + "-" + anhoFin;
				}
				
				if (periodo.equals("Trimestre")){
					if (anhoFin == anhoInicio && mesInicio == mesFin)
						this.tituloGrafica = "Reporte Consultas vs Ventas del Evento \"" + nomEvento + "\"  del " +
											 (mesInicio + 1) + " al " + anhoInicio;
					else
						this.tituloGrafica = "Reporte Consultas vs Ventas del Evento \"" + nomEvento + "\" del " + (mesInicio + 1) +
											 "/" + anhoInicio + " al " + (mesFin + 1) + "/" + anhoFin;
				}
				
				if (periodo.equals("Mes")){
					if (anhoFin == anhoInicio && mesInicio == mesFin)
						this.tituloGrafica = "Reporte Consultas vs Ventas del Evento \"" + nomEvento + "\" del " + (mesInicio + 1) + 
											 " - " + anhoInicio;
					else
						this.tituloGrafica = "Reporte Consultas vs Ventas del Evento \"" + nomEvento + "\" del " + (mesInicio + 1) + 
											 "/" + anhoInicio + " al " + (mesFin + 1) + "/" + anhoFin;
					
				}				


				List<double[]> datosBarra = new ArrayList<double[]>();
				List<double[]> datosLineal = new ArrayList<double[]>();
				
				//Datos de la barra				
				datosBarra.add(registrosBarra);
		
    	
				//Datos del graf lineal				
				datosLineal.add(registrosLinea);
    	
				barra_linea grafica = new barra_linea();				
				grafica.execute(datosBarra,datosLineal,periodo,strPeriodos,this.tituloGrafica);
    	
				String [] types = {BarChart.TYPE, LineChart.TYPE};
    	
				GraphicalView mChartview;
				mChartview = ChartFactory.getCombinedXYChartView(this, grafica.getDataSet(), grafica.getmRenderer(), types);
		
				LinearLayout layout = (LinearLayout) findViewById(R.id.idpanelgraficoconsulta);
				layout.removeAllViews();
				layout.addView(mChartview, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
				}else
					Toast.makeText(this, "No se encontraron resultados con los parametros seleccionados", Toast.LENGTH_LONG).show();
				}else
					Toast.makeText(this, "La Fecha Final no puede ser menor a la Fecha Inicial", Toast.LENGTH_LONG).show();
		
			}else
				Toast.makeText(this, "Debe seleccionar el periodo y la ubicacion", Toast.LENGTH_LONG).show();
		
			ocultarMenu();
		
    }
	
	
	
	private JSONArray returnJson(String url) {
		JSONArray array = null;
		try {
			array = (new JSONParser_Final().execute(url)).get(); //SE OBTIENE LOS OBJ DEL JSON
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ExecutionException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return array;
	}
	
	
	public void establecerColorFechaInicio(){		
		Button btnInicio = (Button) findViewById(R.id.btnInicio);
				
		Drawable d1 = btnInicio.getBackground();
	    PorterDuffColorFilter filter = new PorterDuffColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
	    d1.setColorFilter(filter);			
	    
	    this.setFlagFechaInicio(1);
	}
	
	
	public void establecerColorFechaFin(){		
		Button btnFin = (Button) findViewById(R.id.btnFin);
		
		Drawable d1 = btnFin.getBackground();
        PorterDuffColorFilter filter = new PorterDuffColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
        d1.setColorFilter(filter);
		
        this.setFlagFechaFin(1);
	}
	
	public void establecerColorTiempo(View view){
		
		Button buttonMensuales = (Button) findViewById(R.id.btnMensuales);
		Button buttonAnuales = (Button) findViewById(R.id.btnAnho);
		Button buttonTrimestrales = (Button) findViewById(R.id.btnTrimestres);
	
		if (buttonMensuales.isPressed()){
			
			anual = false;
			Drawable d1 = buttonMensuales.getBackground();
            PorterDuffColorFilter filter = new PorterDuffColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
            d1.setColorFilter(filter);
			
			
			Drawable d2 = buttonAnuales.getBackground();
            findViewById(R.id.btnAnho).invalidateDrawable(d2);
            d2.clearColorFilter();
			
            Drawable d3 = buttonTrimestrales.getBackground();
            findViewById(R.id.btnTrimestres).invalidateDrawable(d3);
            d3.clearColorFilter();
            
			periodo="Mes";
		}
		
		if (buttonAnuales.isPressed()){
			
			anual = true;
			Drawable d1 = buttonAnuales.getBackground();
            PorterDuffColorFilter filter = new PorterDuffColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
            d1.setColorFilter(filter);

			
			Drawable d2 = buttonMensuales.getBackground();
            findViewById(R.id.btnMensuales).invalidateDrawable(d2);
            d2.clearColorFilter();
			
            Drawable d3 = buttonTrimestrales.getBackground();
            findViewById(R.id.btnTrimestres).invalidateDrawable(d3);
            d3.clearColorFilter();
            
            periodo="Anho";
		}
		
		if (buttonTrimestrales.isPressed()) {
			
			anual = false;
			Drawable d1 = buttonTrimestrales.getBackground();
            PorterDuffColorFilter filter = new PorterDuffColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
            d1.setColorFilter(filter);
		
			Drawable d2 = buttonMensuales.getBackground();
            findViewById(R.id.btnMensuales).invalidateDrawable(d2);
            d2.clearColorFilter();
			
            Drawable d3 = buttonAnuales.getBackground();
            findViewById(R.id.btnAnho).invalidateDrawable(d3);
            d3.clearColorFilter();
            
            periodo="Trimestre";
		}
	}
	
	
	public void establecerColorUbicacion(View view){	

		Button buttonLima = (Button) findViewById(R.id.btnLima);
		Button buttonProvincia = (Button) findViewById(R.id.btnProvincia);
        
        if (buttonLima.isPressed()){
        	if (strLima.isEmpty())  
        		strLima="Lima"; 
        	else 
        		strLima="";
		}
		if (buttonProvincia.isPressed()){			
			if(strProvincias.isEmpty()) 
				strProvincias="Provincias"; 
			else 
				strProvincias="";
		}		
		setColorUbicacion();
	}
	
	
	public void setColorUbicacion(){
		
		Button buttonLima = (Button) findViewById(R.id.btnLima);
		Button buttonProvincia = (Button) findViewById(R.id.btnProvincia);
				
        if (!strLima.isEmpty()) {        		
        	Drawable d1 = buttonLima.getBackground();
            PorterDuffColorFilter filter = new PorterDuffColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
            d1.setColorFilter(filter);
    	}
    	else{
    		Drawable d2 = buttonLima.getBackground();
            findViewById(R.id.btnLima).invalidateDrawable(d2);
            d2.clearColorFilter();
    	}

		if(!strProvincias.isEmpty()){			
			Drawable d1 = buttonProvincia.getBackground();
            PorterDuffColorFilter filter = new PorterDuffColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
            d1.setColorFilter(filter);			
		}
		else{            
			Drawable d2 = buttonProvincia.getBackground();
            findViewById(R.id.btnProvincia).invalidateDrawable(d2);
            d2.clearColorFilter();           
		}
	}

	
	public String getDataXY(String[] data, int[] xValues, int[] yValues, int x, int y){
    	int indice = 0;
    	
    	for(int i=0;i<xValues.length;i++){
    		indice= i;
    		if (xValues[i] == x && yValues[i] == y)
    			break;
    	}
    	
    	return data[indice];
    }



	public GraphicalView getmChartView() {
		return mChartView;
	}

	public void setmChartView(GraphicalView mChartView) {
		this.mChartView = mChartView;
	}

	public int[] getAnios() {
		return anios;
	}

	public void setAnios(int[] anios) {
		this.anios = anios;
	}

	public int[] getMeses() {
		return meses;
	}

	public void setMeses(int[] meses) {
		this.meses = meses;
	}

	public int[] getVentasAnio() {
		return ventasAnio;
	}

	public void setVentasAnio(int[] ventasAnio) {
		this.ventasAnio = ventasAnio;
	}

	public int[] getVentasMes() {
		return ventasMes;
	}

	public void setVentasMes(int[] ventasMes) {
		this.ventasMes = ventasMes;
	}

	public String[] getDatos() {
		return datos;
	}

	public void setDatos(String[] datos) {
		this.datos = datos;
	}

	public String getTituloGrafica() {
		return tituloGrafica;
	}

	public void setTituloGrafica(String tituloGrafica) {
		this.tituloGrafica = tituloGrafica;
	}

	public LinearLayout getLayoutGrafica() {
		return layoutGrafica;
	}

	public void setLayoutGrafica(LinearLayout layoutGrafica) {
		this.layoutGrafica = layoutGrafica;
	}

	public boolean isAnual() {
		return anual;
	}

	public void setAnual(boolean anual) {
		this.anual = anual;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public int getFlagTiempo() {
		return flagTiempo;
	}

	public void setFlagTiempo(int flagTiempo) {
		this.flagTiempo = flagTiempo;
	}

	public int getFlagLima() {
		return flagLima;
	}

	public void setFlagLima(int flagLima) {
		this.flagLima = flagLima;
	}

	public int getFlagProvincia() {
		return flagProvincia;
	}



	public void setFlagProvincia(int flagProvincia) {
		this.flagProvincia = flagProvincia;
	}



	public int getFlagNivel() {
		return flagNivel;
	}



	public void setFlagNivel(int flagNivel) {
		this.flagNivel = flagNivel;
	}



	public int getFlagFechaInicio() {
		return flagFechaInicio;
	}



	public void setFlagFechaInicio(int flagFechaInicio) {
		this.flagFechaInicio = flagFechaInicio;
	}



	public int getFlagFechaFin() {
		return flagFechaFin;
	}



	public void setFlagFechaFin(int flagFechaFin) {
		this.flagFechaFin = flagFechaFin;
	}



	public Button getPickDateInicio() {
		return pickDateInicio;
	}



	public void setPickDateInicio(Button pickDateInicio) {
		this.pickDateInicio = pickDateInicio;
	}



	public int getAnhoInicio() {
		return anhoInicio;
	}



	public void setAnhoInicio(int anhoInicio) {
		this.anhoInicio = anhoInicio;
	}



	public int getMesInicio() {
		return mesInicio;
	}



	public void setMesInicio(int mesInicio) {
		this.mesInicio = mesInicio;
	}



	public int getDiaInicio() {
		return diaInicio;
	}



	public void setDiaInicio(int diaInicio) {
		this.diaInicio = diaInicio;
	}



	public Button getPickDateFin() {
		return pickDateFin;
	}



	public void setPickDateFin(Button pickDateFin) {
		this.pickDateFin = pickDateFin;
	}



	public int getAnhoFin() {
		return anhoFin;
	}



	public void setAnhoFin(int anhoFin) {
		this.anhoFin = anhoFin;
	}



	public int getMesFin() {
		return mesFin;
	}



	public void setMesFin(int mesFin) {
		this.mesFin = mesFin;
	}



	public int getDiaFin() {
		return diaFin;
	}



	public void setDiaFin(int diaFin) {
		this.diaFin = diaFin;
	}



	public TextView getmDateDisplayInicio() {
		return mDateDisplayInicio;
	}



	public void setmDateDisplayInicio(TextView mDateDisplayInicio) {
		this.mDateDisplayInicio = mDateDisplayInicio;
	}



	public TextView getmDateDisplayFin() {
		return mDateDisplayFin;
	}



	public void setmDateDisplayFin(TextView mDateDisplayFin) {
		this.mDateDisplayFin = mDateDisplayFin;
	}



	public DatePickerDialog.OnDateSetListener getmDateSetListenerInicio() {
		return mDateSetListenerInicio;
	}



	public void setmDateSetListenerInicio(
			DatePickerDialog.OnDateSetListener mDateSetListenerInicio) {
		this.mDateSetListenerInicio = mDateSetListenerInicio;
	}



	public DatePickerDialog.OnDateSetListener getmDateSetListenerFin() {
		return mDateSetListenerFin;
	}



	public void setmDateSetListenerFin(
			DatePickerDialog.OnDateSetListener mDateSetListenerFin) {
		this.mDateSetListenerFin = mDateSetListenerFin;
	}



	public static int getDateDialogInicial() {
		return DATE_DIALOG_Inicial;
	}



	public static int getDateDialogFinal() {
		return DATE_DIALOG_Final;
	}
	
	
	
		
}